What The Differences Between
ABAP and HR-ABAP
The ABAP HR is an integral part of ABAP. Generally in
ABAP the following are done:
1) Table development
2) Date Processin
3) Reprt developing
4) BAPIs /RFC s
5) Data base update
6) Screens development/enhancement
7) Scripts and smart forms.
8) Function Building
9) Java connectors etc.
This is basically done through the PROGRAMMING in ABAP
builder by using ABAP 4th generation languge. This may be related to any
module of my SAP ERP 2004 like HR, FICO.SD,MM,CRM Etc.,
Now when it is said ABAP HR. It is the development of
ABAP in the area of HR to meet the clients requirements according to the
functional specifications .They may be in any area of HR like in the areas
of time aspects ,pay aspects, OM aspects and Self Services like E-recruitment,
ESS etc.,
One example of ABAP PROGRAMME related to HR is given below.
Report: ZP_POSTCODE: This report has been developed
by the ABAPER in the area of SAP HR to Display report of employees by postcode
that includes current traveling allowances (i.e. parking, permit or transport
card etc.)
*:.....................................................................:
:
*: Use: Help encourage the use of car sharing and public
* transport wherever it appropriate (this is the functional
requirement of the client or the functional specification
* (which is given by the functional consultants)
:
*:.....................................................................:
REPORT zp_postcode.
type-pools: slis.
"ALV Declarations
NODES: pernr.
INFOTYPES: 0000, 0001, 0002, 0006, 0008, 0014, 0105, 0121.
SELECTION-SCREEN BEGIN OF BLOCK pcode WITH FRAME TITLE
text-s01.
SELECT-OPTIONS: so_pcode FOR p0006-pstlz.
SELECTION-SCREEN END OF BLOCK pcode.
TYPES: BEGIN OF t_output,
pernr TYPE
p0001-pernr, "personnel name
anredtxt TYPE t522t-atext,
"title (based on p0002-anred)
fname TYPE
p0002-vorna, "first name
lname TYPE
p0002-nachn, "last name
orgtx TYPE
t527x-orgtx, "dept
fte
TYPE p0008-bsgrd, "fte
parking(20) TYPE c,
payslip TYPE t526-sachn,
"payslip address
telno TYPE
p0105-usrid_long, "tel number(p0105-usrty = 0020)
email TYPE
p0105-usrid_long, "email (p0105-usrty = MAIL)
postcode type p0006-pstlz,
END OF t_output.
DATA: it_output TYPE STANDARD TABLE OF t_output INITIAL
SIZE 0,
wa_output TYPE t_output.
*ALV data declarations
data: fieldcatalog type slis_t_fieldcat_alv
with header line,
gd_tab_group
type slis_t_sp_group_alv,
gd_layout
type slis_layout_alv,
gd_repid
like sy-repid,
gt_events
type slis_t_event,
gd_prntparams type
slis_print_alv,
gd_count(6)
type n,
gd_outtext(70) type c,
gd_lines
type i.
************************************************************************
*START-OF-SELECTION.
START-OF-SELECTION.
clear: gd_count.
GET pernr.
* Infotype 0121 is used to store multiple contracts for
personnel.
* Field p0121-hpern contains the personnel number for
the main contract.
PROVIDE * from p0121 between pn-begda and pn-endda.
* Check if main contract
if p0121-pernr ne p0121-hpern.
reject.
endif.
ENDPROVIDE.
add 1 to gd_count.
concatenate 'Processing personnel data'(m10) gd_count
into gd_outtext
separated by ' '.
* Display indicator for employee count
perform progress_indicator using gd_outtext.
* Retrieve datd from infotypes
rp_provide_from_last p0000 space pn-begda pn-endda.
rp_provide_from_last p0001 space pn-begda pn-endda.
rp_provide_from_last p0002 space pn-begda pn-endda.
rp_provide_from_last p0006 space pn-begda pn-endda.
rp_provide_from_last p0008 space pn-begda pn-endda.
rp_provide_from_last p0014 space pn-begda pn-endda.
* Check post code
CHECK p0006-pstlz IN so_pcode. "cp
* Post code
wa_output-postcode = p0006-pstlz.
* Personnel number
wa_output-pernr = pernr-pernr.
* Personnel title
SELECT SINGLE atext
FROM t522t
INTO wa_output-anredtxt
WHERE sprsl EQ sy-langu AND
anred
EQ p0002-anred.
* First name
wa_output-fname = p0002-vorna.
* Last name
wa_output-lname = p0002-nachn.
* Organizational Unit text (dept)
SELECT SINGLE orgtx
FROM t527x
INTO wa_output-orgtx
WHERE sprsl EQ sy-langu AND
orgeh
EQ p0001-orgeh AND
endda
GE sy-datum.
* FTE
wa_output-fte = p0008-bsgrd.
* Parking / travel deducted?
CASE p0014-lgart.
WHEN '7180' OR '7181' OR '7182'.
wa_output-parking = text-002.
WHEN '7183'.
wa_output-parking = text-001.
WHEN '7171' OR '7172' or '7173' or
'7174' or
'7175'
or '7176' or '7177' or '7178'.
wa_output-parking = text-003.
ENDCASE.
* Payslip Address
SELECT SINGLE sachn
FROM t526
INTO wa_output-payslip
WHERE werks EQ p0001-werks AND
sachx
EQ p0001-sacha.
PROVIDE * from p0105 between pn-begda and pn-endda.
* Telephone numbers
if p0105-usrty = '0020'.
wa_output-telno
= p0105-usrid_long.
endif.
* Email address
if p0105-usrty = 'MAIL'.
wa_output-email
= p0105-usrid_long.
endif.
ENDPROVIDE.
append wa_output to it_output.
clear: wa_output.
************************************************************************
*END-OF-SELECTION.
END-OF-SELECTION.
describe table it_output lines gd_lines.
if gd_lines gt 0.
perform build_fieldcatalog.
perform build_layout.
perform display_alv_report.
else.
message i003(zp) with 'No records found'.
endif.
*&---------------------------------------------------------------------*
*& Form PROGRESS_INDICATOR
*&---------------------------------------------------------------------*
* Displays progress
indicator on SAP screen
*----------------------------------------------------------------------*
form progress_indicator using p_text.
call function 'SAPGUI_PROGRESS_INDICATOR'
exporting
* PERCENTAGE
= 0
text = p_text.
endform.
" PROGRESS_INDICATOR
*&---------------------------------------------------------------------*
*& Form BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
* Build Fieldcatalog
for ALV Report
*----------------------------------------------------------------------*
form build_fieldcatalog.
fieldcatalog-fieldname = 'PERNR'.
fieldcatalog-seltext_m = 'Personnel
No.'.
fieldcatalog-col_pos =
0.
fieldcatalog-outputlen = 10.
* fieldcatalog-emphasize = 'X'.
* fieldcatalog-key
= 'X'.
* fieldcatalog-do_sum
= 'X'.
* fieldcatalog-no_zero
= 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'ANREDTXT'.
fieldcatalog-seltext_m = 'Title'.
fieldcatalog-col_pos =
1.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'FNAME'.
fieldcatalog-seltext_m = 'First Name'.
fieldcatalog-col_pos =
2.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'LNAME'.
fieldcatalog-seltext_m = 'Last Name'.
fieldcatalog-col_pos =
3.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'ORGTX'.
fieldcatalog-seltext_m = 'Department'.
fieldcatalog-col_pos =
4.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'FTE'.
fieldcatalog-seltext_m = 'FTE'.
fieldcatalog-col_pos =
5.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'PARKING'.
fieldcatalog-seltext_m = 'Parking/Metrocard'.
fieldcatalog-col_pos =
6.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'PAYSLIP'.
fieldcatalog-seltext_m = 'Payslip
Add.'.
fieldcatalog-col_pos =
7.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'TELNO'.
fieldcatalog-seltext_m = 'Telephone'.
fieldcatalog-col_pos =
8.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'EMAIL'.
fieldcatalog-seltext_m = 'E-mail'.
fieldcatalog-col_pos =
9.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'POSTCODE'.
fieldcatalog-seltext_m = 'Post code'.
fieldcatalog-col_pos =
10.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
endform.
" BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*& Form BUILD_LAYOUT
*&---------------------------------------------------------------------*
* Build layout for
ALV grid report
*----------------------------------------------------------------------*
form build_layout.
gd_layout-no_input
= 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text
= 'Totals'(201).
gd_layout-zebra
= 'X'.
endform.
" BUILD_LAYOUT
*&---------------------------------------------------------------------*
*& Form DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
* Display report
using ALV grid
*----------------------------------------------------------------------*
form display_alv_report.
gd_repid = sy-repid.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
is_layout
= gd_layout
it_fieldcat
= fieldcatalog[]
i_save
= 'X'
tables
t_outtab
= it_output
exceptions
program_error
= 1
others
= 2.
if sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH
SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
endform.
" DISPLAY_ALV_REPORT
To conclude the message its always advantage to have a
HR consultant who knows ABAP that is why this ABAP HR Consultant are in
high demand.
*-- Madhuuri
Get help for your ABAP problems
Do you have
a ABAP Question?
ABAP Books
ABAP
Certification, BAPI, Java, Web Programming, Smart Forms, Sapscripts Reference
Books
More ABAP Tips
Best regards,
SAP Basis, ABAP Programming and Other IMG Stuff
http://www.erpgreat.com
All the site contents are Copyright © www.erpgreat.com
and the content authors. All rights reserved.
All product names are trademarks of their respective
companies. The site www.erpgreat.com is in no way affiliated with
SAP AG.
Every effort is made to ensure the content integrity.
Information used on this site is at your own risk.
The content on this site may not be reproduced
or redistributed without the express written permission of
www.erpgreat.com or the content authors.
|